package five;

public class 五九对象的转型 {
    public static void main(String[] args) {
        Object obj1 = new String("北京尚学堂"); // 向上可以自动转型
        // obj.charAt(0) 无法调用。编译器认为obj是Object类型而不是String类型
        /* 编写程序时，如果想调用运行时类型的方法，只能进行强制类型转换。
         * 不然通不过编译器的检查。 */
        String str1 = (String) obj1; // 向下转型
        System.out.println(str1.charAt(0)); // 位于0索引位置的字符
        System.out.println(obj1 == str1); // true.他们俩运行时是同一个对象

        Object obj = new String("北京尚学堂");
        if(obj instanceof String){
            String str = (String)obj;
            System.out.println(str.charAt(0));
        }else if(obj instanceof StringBuffer){
            StringBuffer str = (StringBuffer) obj;
            System.out.println(str.charAt(0));
        }
    }
}
